// 歌单模块

export default {
  namespaced: 'music-list',
  state: () => ({
    /**
     * 歌单数据
     * item结构
     *  - id          歌单id(为0则为默认歌单)
     *  - name        歌单名称
     *  - music       该歌单下的歌曲列表
     */
    musicLists: [{
      'id': 0,
      'name': '默认歌单',
      'music': []
    }],
    
    // 当前播放的歌单id(默认为默认歌单)
    activeListId: 0
  }),
  mutations: {
    // 重设歌单列表
    setMusicLists(state, musicList) {
      state.musicList = musicList || [{
        'id': 0,
        'name': '默认歌单',
        'music': []
      }]
    },
    
    // 新增歌单至歌单列表 返回歌单下标
    addMusicList(state, musicListItem) {
      // 查找是否已经添加，如有则不添加
      let musicList = state.musicLists.find(i => i.id === musicListItem.id)
      if (musicList) return null
      
      state.musicLists.push(musicListItem)
      return state.musicLists.length - 1
    },
    
    // 设置当前正在播放的歌单id
    setActiveListId(state, musicListId) {
      state.activeListId = musicListId || 0
    }
  },
  getters: {
    // 当前正在播放的歌单
    activeList(state) {
      return state.musicLists.find(i => i.id === state.activeListId) || {}
    }
  }
}
